package fr.afcepf.al23.qualite.data;

import fr.afcepf.al23.qualite.entity.Utilisateur;

/**
 * Definition des dao.
 * @author Stagiaire
 */
public interface IDaoUtilisateur {
    /**
     * Methode permettant de verifier si un
     * {@link Utilisateur} existe bien dans
     * l'application à l'aide de son mail et
     * son mot de passe.
     * @param mail le mail de l'{@link Utilisateur}.
     * @param mdp le mot de passe de l'{@link Utilisateur}.
     * @return
     * <code>
     *  <ul>
     *      <li>
     *          un Utilisateur non null, si il<br />
     *          existe dans le systeme d'information.
     *      </li>
     *      <li>
     *          un Utilisateur <strong>null</strong>, si il
     *          <br /> existe dans le systeme d'information.
     *      </li>
     *  </ul>
     * </code>
     */
    Utilisateur seConnecter(String mail, String mdp);
    /**
     * Methode permettant de faire persister un
     * {@link Utilisateur} dans le systeme d'information.
     * @param util l'{@link Utilisateur}
     * @return
     * <code>
     *  <ul>
     *      <li>
     *          l'{@link Utilisateur} avec sa clé primaire
     *          <br />renseignée si l'ajout a fonctionné.
     *      </li>
     *      <li>
     *      l'{@link Utilisateur} null
     *          <br />renseignée si l'ajout n'a pas fonctionné.
     *      </li>
     *  </ul>
     * </code>
     */
    Utilisateur enregistrer(Utilisateur util);
    /**
     * Methode permettant de vérifier l'existance
     * d'un {@link Utilisateur} dans la base de données.
     * @param mail l'email de l'{@link Utilisateur}
     * @return
     * <code>
     *  <ul>
     *      <li>
     *          True si elle existe dans le SI.
     *      </li>
     *      <li>
     *          False si elle est disponible dans le SI.
     *      </li>
     *  </ul>
     * </code>
     */
    boolean verifMail(String mail);
}
